package com.ladlee.parking.pay.v3.core;

import com.ladlee.parking.pay.v3.handle.PayHandler;
import com.ladlee.parking.pay.v3.service.PayService;

/**
 * 支付统一管理中心
 */
public class PayV3Manager {

    /**
     * 支付类型的数组
     */
    private final PayService[] payServices;

    public PayV3Manager(PayService[] payServices) {
        this.payServices = payServices;
    }

    /**
     * 获取支付处理器
     *
     * @param payType
     * @param tradeType
     * @return
     */
    public <T> PayHandler<T> getHandler(String payType, String tradeType) {
        for (PayService payService : payServices) {
            if (payService.support(payType)) {
                return payService.handler(tradeType);
            }
        }
        return null;
    }
}
